package top.xcxdl.rural.config.initexception;

import lombok.Getter;

/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Ding
 * @create 2022/4/3 20:38
 */
@Getter
public enum ErrorEnum {

    /**
     * 500：runtime意外运行报错抛出异常
     */
    UNEXPECTED_EXCEPTION(500, "系统正在维护"),

    /**
     * 501~699：各种一般级别失败
     */
    //通用操作失败
    OPERATION_FAILED(501, "操作失败"),
    //降权失败
    PERMISSION_FAILED_ALL(502,"您不能为您的账号降权，且此时仅剩一个超级管理员"),
    PERMISSION_FAILED_YOURSELF(503, "您不能为您的账号降权"),
    PERMISSION_FAILED_LAST_SUPER(504, "您不能为唯一的超级管理员降低权限"),
    //角色失败
    ROLE_UNCHANGEABLE(505, "超级管理员角色必须唯一，不可添加、编辑和删除"),
    ROLE_CONFLICT(506, "该角色名称已存在"),
    //菜单失败
    RULE_ASSIGN_NO_PERMISSION(507, "分配的菜单中存在普通管理员不被允许的权限"),
    SCHEDULE_RECORD_FAIL(508, "进度记录失败"),
    AD_CODE_IS_EXISTS(509, "此adCode已存在"),
    //登录失败
    LOGIN_MISSING_PARAM(510,"登录缺失必要参数"),
    LOGIN_ACCOUNT_DISABLED(511,"该账号已被禁用"),
    LOGIN_INVALID(512,"用户名或密码错误"),
    LOGIN_NO_AUTH_WECHAT(606,"用户未进行微信授权，请先进行微信授权"),
    //注册失败
    REGISTERED_ACCOUNT_EXISTS(651,"账号已存在"),

    /**
     * 300~320：token异常
     */
    NOT_LOGIN(300, "未登录，请先登录"),
    SIGNATURE_VERIFICATION(301, "token签名失败"),
    DECODE_ERROR(302, "token解析失败，请重新登录获取token"),
    EXPIRED(303, "token解析失败"),

    /**
     * 400~450：各种请求和访问级别失败
     */
    NO_AUTH(403,"您无权访问"),
    HIGHEST_AUTH(406,"权限错误，该操作需要最高权限"),

    /**
     * 700~899：外部API失败
     */
    VERIFY_CODE_INVALID(701,"验证码无效或已过期"),
    VERIFY_CODE_MISMATCH(702,"验证码错误"),


    ;

    private final Integer errorCode;
    private final String errorMsg;

    ErrorEnum(Integer errorCode, String errorMsg) {
        this.errorCode = errorCode;
        this.errorMsg = errorMsg;
    }

}
